package dao

import (
	"time"
)

// 这是 TopicEx 的全局公开dao对象，被service层调用!
var TopicExDao = topicExDao{}

// 主题扩展表(计数)
// 这是 topic_ex表 的实体类,这个实体类中的字段可以减少，但是不能在其基础上增加!
type TopicEx struct {
	Tid   int32     `json:"tid" form:"tid" db:"tid" v:"tid"`
	View  int32     `json:"view" form:"view" db:"view" v:"view"`     // 浏览数
	Reply int32     `json:"reply" form:"reply" db:"reply" v:"reply"` // 回复数
	Like  int32     `json:"like" form:"like" db:"like" v:"like"`     // 喜欢数
	Mtime time.Time `json:"mtime" form:"mtime" db:"mtime" v:"mtime"`
}

// 注意:这是 TopicEx 的私有dao对象，只能在dao层内使用!
type topicExDao struct {
	InsertTemplate func(arg TopicEx) (int64, error)         //插入一条记录
	UpdateTemplate func(arg TopicEx) (int64, error)         //更新一条记录
	DeleteTemplate func(id int64) (int64, error)            `arg:"id"` //根据传入的主键删除一条记录
	SelectTemplate func(id int64) (TopicEx, error)          `arg:"id"` //根据传入的主键获取一条记录
	List           func(arg TopicExList) ([]TopicEx, error) //模糊分页查询
}

/*
// 这是 topic_ex 表的Postman测试参数
// 该结构体中的字段就是: 前后端交互的json字段!
type TopicExPostman struct {
tid
view
reply
like
mtime

}*/

// 这是 topic_ex 表的批量请求参数
type TopicExReq struct {
	List []TopicEx `json:"list" form:"list"`
}

// 这是 topicExDao.List()方法的请求参数
type TopicExList struct {
	Page
}
